﻿/* ----------------------------------------------------------------------------
 * Copyright (c) Philip Stears 
 *
 * This source code is subject to terms and conditions of the Microsoft Public 
 * License (Ms-PL).
 * 
 * By using this source code in any fashion, you are agreeing to be bound 
 * by the terms of the Microsoft Public License.
 * 
 * To request a copy of the Microsoft Public License, send a request by email
 * to license@connectbasic.net.
 *
 * This notice must not be removed from this software.
 * ---------------------------------------------------------------------------- */

namespace ConnectBasic.Shell.Extensibility
{

    /// <summary>
    /// Provides support for applying highlights and glyphs.
    /// </summary>
    public interface IHighlightService
    {

        /// <summary>
        /// Applies the highlight with the given definition to the specified location.
        /// </summary>
        /// <param name="definitionName">The name of the highlight definition.</param>
        /// <param name="startLine">The start line.</param>
        /// <param name="startColumn">The start column.</param>
        /// <param name="endLine">The end line.</param>
        /// <param name="endColumn">The end column.</param>
        /// <returns>A handle to the highlight.</returns>
        int SetHighlight(string definitionName, int startLine, int startColumn, int endLine, int endColumn);

        /// <summary>
        /// Clears the highlight with the specified id.
        /// </summary>
        /// <param name="highlightId">The highlight to clear.</param>
        void ClearHighlight(int highlightId);
    }
}
